perm filename DICTBT.FAI[MUS,LCS] blob sn#088111 filedate 1974-02-21 generic text, type T, neo UTF8
00100		TITLE DICTBT
00200		INTERNAL UNPACK,REPACK,D2A,SPEED
00300	
00400	; CALL UNPACK(WORD,N)  -- [ARRAY N(3)]
00500	; CALL REPACK(WORD,N)  -- [ARRAY N(3)]
00600	; PUTS 3 SOUND SAMPLES OF 'WORD' INTO N(1), N(2), N(3).
00700	
00800	X ← 2
00900	T ← 3
01000	
01100	IDX:	XWD 441400,-3
01200	
01300	UNPACK:	0
01400		MOVE	T,0(16)
01500		HLL	T,IDX
01600		MOVE	X,1(16)
01700		HRL	X,IDX
01800	LOOP1:
01900		ILDB	1,T
02000		LSH	1,=24
02100		ASH	1,-=24
02200		MOVEM	1,(X)
02300		AOBJN	X,LOOP1
02400		JRA	16,2(16)
02500	REPACK:	0
02600		MOVE	T,0(16)
02700		HRLI	T,441400
02800		MOVE	X,1(16)
02900		HRL	X,IDX
03000	LOOP2:
03100		MOVE	1,(X)
03200		IDPB	1,T
03300		AOBJN	X,LOOP2
03400		JRA	16,2(16)
03500	
03600	;*********************************
03700	
03800		INTERNAL D2A,SPEED
03900	; CALL SPEED(SPEED,NCHNS)
04000	; CALL D2A(NAME(1),SIZE)
04100	
04200	
04300	DAC←17
04400	D2A:	MOVSI	'XGP'	;DOWN TO XGPOK FOR XGP CONFLICT.
04500		DEVUSE	0,	
04600		HLRZ 	0,0
04700		CAIN	400000
04800		JRST	XGPOK
04900		INIT	16,17
05000		SIXBIT	.XGP.
05100		0
05200		JRA	16,2(16)
05300	XGPOK:	JUMP	0
05400		INIT	DAC,17
05500		SIXBIT 	.AD.
05600		0
05700		JRST	.-3
05800		MOVN 	0,@1(16)
05900		HRLM	0,OUT
06000		MOVE	0,0(16)
06100		SUBI	0,1
06200		HRRM	0,OUT
06300		OUTPUT	DAC,OUT
06400		RELEASE DAC,0
06500		RELEASE 16,
06600		JRA	16,2(16)
06700	OUT:	0
06800		3650	;CONO 204,3650
06900		4030	; "   424,4010
07000		0
07100		0
07200	SPEED:	0
07300		MOVE	@(16)
07400		DPB	[POINT 3,OUT+2,32]
07500		MOVE	@1(16)
07600		SUBI	1
07700		DPB	[POINT 2,OUT+2,26]
07800		JRA	16,2(16)
07900		END